
/*
    作者：郭健
    时间：2017-08
*/
//验证是否问中文姓名

function modalMsg(str){
    //基于bootstrap的提示框
    if($("#msgModal").attr("role")!="dialog"){
         var html='<div class="modal fade" id="msgModal" tabindex="-1" role="dialog" aria-labelledby="msgModal"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button><h4 class="modal-title" id="msgModal2">提示</h4></div><div class="modal-body" style="text-align: center;font-size: 18px;"><p id="msg-dlg"></p></div><div class="modal-footer"><button type="button" class="btn btn-defaultbtn-primary" id="modalMsgCloseBtn" data-dismiss="modal">关闭</button></div></div></div><button id="msgShowBtn" style="display: none;" data-toggle="modal" data-target="#msgModal" ></button></div>';
         $(document.body).append(html);
    }
    $("#msg-dlg").html(str);
    $("#msgShowBtn").click();
 }
 var tempfunc=function(){};
 function modalDlg(str,callBack){
    //基于bootstrap的提示框
    var func=callBack; 
    if(typeof(callBack)!="function"){
    	func+="()";
    }else{
    	tempfunc=callBack;
    	func="tempfunc()";
    };
    if($("#dlgModal").attr("role")!="dialog"){
        var html='<div class="modal fade" id="dlgModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button><h4 class="modal-title" id="myModalLabel">提示</h4></div><div class="modal-body" style="text-align: center;font-size: 18px;"><p id="dlg-dlg"></p></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal" id="modalDlgCloseBtn">取消</button><button type="button" class="btn btn-primary" onclick="'+func+'">确认</button></div><input id="dlgModal-show" type="button" style="display: none" data-toggle="modal" data-target="#dlgModal" ></div></div></div>';
        $(document.body).append(html);
    }
    $("#dlg-dlg").html(str);
    $("#dlgModal-show").click();
 }
 function modalMsgClose(){
    $("#modalMsgCloseBtn").click();
 }
 function modalDlgClose(){
    $("#modalDlgCloseBtn").click();
 }


function ZSK_UserName(str){
    var nameCheck=/^[A-Za-z0-9]*$/;
    if(nameCheck.test(str)&&(str.length>3&&str.length<21)){
        return true;
    }
    return false;
}
//验证IP地址是否有效
function ZSK_isIp(str){
    //获取验证ip
    var strIp=str;
    //正则表达式
    var ipCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;  
    if (ipCheck.test(strIp)){
        //判断IP是否在有效范围内
        strIp.match(ipCheck);
        if(RegExp.$1<=255&&RegExp.$1>=0
            &&RegExp.$2<=255&&RegExp.$2>=0
            &&RegExp.$3<=255&&RegExp.$3>=0
            &&RegExp.$4<=255&&RegExp.$4>=0){  
            return true; 
        }else{
            return false;
        }  
    }else{
         return false; 
    }
}

//检验是否正确日期格式 精确到时分秒的验证
function ZSK_CheckIsValidDate(str){
    var strD=str;
    var DateCheck= /^(\d+)\-(\d+)\-(\d+)\ (\d+)\:(\d+)\:(\d+)$/;
    //正则表达式 匹配出生日期(简单匹配)     
    if (DateCheck.test(strD)){
        strD.match(DateCheck);
        //设置时间范围年1976-3000 时0-23 分0-59 秒0-59
        if(RegExp.$1<=3000&&RegExp.$1>=1970
            &&RegExp.$4<=23&&RegExp.$4>=0
            &&RegExp.$5<=59&&RegExp.$5>=0
            &&RegExp.$6<=59&&RegExp.$6>=0){
                var iyear=(RegExp.$1)%4;
                //如果月份为小则 日1-30 如果月份为大1-31 如果为润2月 1-29 平2月 1-28
                if((RegExp.$2==4||RegExp.$2==5||RegExp.$2==9||RegExp.$2==11)&&(RegExp.$3>=1&&RegExp.$3<=30)){
                    return true;
                }else if((RegExp.$2==1||RegExp.$2==3||RegExp.$2==5||RegExp.$2==7||RegExp.$2==8||RegExp.$2==10||RegExp.$2==12)&&(RegExp.$3>=1&&RegExp.$3<=31)){
                    return true;
                }else if(RegExp.$2==2&&iyear==0&&RegExp.$3>=1&&RegExp.$3<=29){
                    return true;
                }else if(RegExp.$2==2&&iyear!=0&&RegExp.$3>=1&&RegExp.$3<=28){
                    return true;
                }
                else{
                    return false;
                }
            }else{
                return false;
            }
    }else{
        return false;
    }
}
function ZSK_CheckDate(str){
    var strD=str;
    var DateCheck= /^(\d+)\-(\d+)\-(\d+)$/;
    //正则表达式 匹配出生日期(简单匹配)     
    if (DateCheck.test(strD)){
        strD.match(DateCheck);
        //设置时间范围年1976-3000 时0-23 分0-59 秒0-59
        if(RegExp.$1<=3000&&RegExp.$1>=1970){
                var iyear=(RegExp.$1)%4;
                //如果月份为小则 日1-30 如果月份为大1-31 如果为润2月 1-29 平2月 1-28
                if((RegExp.$2==4||RegExp.$2==5||RegExp.$2==9||RegExp.$2==11)&&(RegExp.$3>=1&&RegExp.$3<=30)){
                    return true;
                }else if((RegExp.$2==1||RegExp.$2==3||RegExp.$2==5||RegExp.$2==7||RegExp.$2==8||RegExp.$2==10||RegExp.$2==12)&&(RegExp.$3>=1&&RegExp.$3<=31)){
                    return true;
                }else if(RegExp.$2==2&&iyear==0&&RegExp.$3>=1&&RegExp.$3<=29){
                    return true;
                }else if(RegExp.$2==2&&iyear!=0&&RegExp.$3>=1&&RegExp.$3<=28){
                    return true;
                }
                else{
                    return false;
                }
            }else{
                return false;
            }
    }else{
        return false;
    }
}
//验证MAC地址
function ZSK_isMac(str){
    //获取验证Mac
    var strMac=str;
    //正则表达式
    var MacCheck = /^[a-fA-F\d]{2}\:[a-fA-F\d]{2}\:[a-fA-F\d]{2}\:[a-fA-F\d]{2}\:[a-fA-F\d]{2}\:[a-fA-F\d]{2}$/;  
    if (MacCheck.test(strMac)){
        return true;
    }else{
        return false;
    }
}

//验证是否为小数
function ZSK_isFloat(str){
    //获取验证float
    var strfloat=str;
    //正则表达式
    var FloatCheck=/^(\d+)(\.?)\d{0,3}$/;
    if (FloatCheck.test(strfloat)){
        var FloatCheck1=/^(\d+)\.$/;
        if(FloatCheck1.test(strfloat))
        {
            return false;
        }else{
            return true;
        }
    }else{
        return false;
    }
}

//验证是否为整数
function ZSK_isInt(str){
    //获取验证int
    var strint=str;
    //正则表达式
    var IntCheck=/^(\d+)$/;
    if (IntCheck.test(strint)){
        return true;
    }else{
        return false;
    }
}

//判断键盘元素是否是数字键 
function ZSK_isNumkey(e){
    var keynum;
    var keychar;
    var numcheck;
    if(window.event){ // IE
        keynum = e.keyCode;
    }
    else if(e.which){ // Netscape/Firefox/Opera
        keynum = e.which;
    }
    keychar = String.fromCharCode(keynum);
    if(keynum>95 && keynum<106)
        return true;
    numcheck = /\d/;
    return numcheck.test(keychar);
}
//验证是手机号或者座机
function ZSK_MobOrTel(str){ 
    var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
    var isMob=/^((\+?86)|(\(\+86\)))?(13[012356789][0-9]{8}|15[012356789][0-9]{8}|18[02356789][0-9]{8}|147[0-9]{8}|1349[0-9]{7})$/;
    if(isMob.test(str)||isPhone.test(str)){
        return true;
    }
    else{
        return false;
    } 
}
//验证手机号
function ZSK_isMobile(str){
    //获取验证手机号
    var strmobile=str;
    //正则表达式
    var MobileCheck=/^1\d{10}$/;
    if (MobileCheck.test(strmobile)){
        return true;
    }else{
        return false;
    }
}

//验证规则：区号+号码，区号以0开头，3位或4位
//号码由7位或8位数字组成
//区号与号码之间可以无连接符，也可以“-”连接
function ZSK_isTelephone(str){
    //获取验证电话号码
    var strTelephone=str;
    //正则表达式
    var TelephoneCheck=/^0\d{2,3}\-?\d{7,8}$/;
    if (TelephoneCheck.test(strTelephone)){
        return true;
    }else{
        return false;
    }
}

function ZSK_isEmail(str){
    //获取验证邮箱
    var strEmail=str;
    //正则表达式
    var EmailCheck=/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
    if (EmailCheck.test(strEmail)){
        return true;
    }else{
        return false;
    }
}

//身份证精确验证
function ZSK_isCardNo(idcard){
    //var Errors=new Array("验证通过!","身份证号码位数不对!","身份证号码出生日期超出范围或含有非法字符!","身份证号码校验错误!","身份证地区非法!"); 
    var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
    var idcard,Y,JYM; 
    var S,M; 
    var idcard_array = new Array(); 
    idcard_array = idcard.split(""); 
    //地区检验  
    if(area[parseInt(idcard.substr(0,2))]==null) {
        return false;
    }
    //身份号码位数及格式检验  
    switch(idcard.length){
        case 15:
        if((parseInt(idcard.substr(6,2))+1900)%4==0||((parseInt(idcard.substr(6,2))+1900)%100==0&&(parseInt(idcard.substr(6,2))+1900)%4 ==0)){ 
        ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性  
        } else { 
        ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性  
        } 
        if(ereg.test(idcard)){
            return true;
        }else{
            return false;
        }
        break;
        case 18: 
            //18位身份号码检测  
            //出生日期的合法性检查  
            //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))  
            //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))  
            if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){ 
            ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式  
            } else { 
            ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式  
            } 
            if(ereg.test(idcard)){//测试出生日期的合法性  
                //计算校验位  
                S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 
                + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 
                + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 
                + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 
                + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 
                + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 
                + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 
                + parseInt(idcard_array[7]) * 1 
                + parseInt(idcard_array[8]) * 6 
                + parseInt(idcard_array[9]) * 3 ; 
                Y = S % 11; 
                M = "F"; 
                JYM = "10X98765432"; 
                M = JYM.substr(Y,1);//判断校验位  
                if(M == idcard_array[17]) return true; //检测ID的校验位  
                else return false; 
            } 
            else return false; 
            break; 
        default: 
            return false; 
            break; 
    } 
}
function ZSK_Chinese(str){
    var pattern=/^[\u4e00-\u9fa5]+$/;
    if(pattern.test(name)){
        return true;
    }
    return false;
}